home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / debugger / ddd-1.000 / ddd-1 / ddd-1.4b / ddd / ptest.p < prev    next >
Encoding:
Text File  |  1995-11-23  |  4.8 KB  |  186 lines

  1. {$Id: ptest.p,v 1.3 1995/11/23 10:53:21 zeller Exp $}
  2. {Pascal Test Program}
  3.  
  4. {
  5.   Copyright (C) 1995 Technische Universitaet Braunschweig, Germany.
  6.   Written by Andreas Zeller (zeller@ips.cs.tu-bs.de).
  7.   
  8.   This file is part of DDD.
  9.   
  10.   DDD is free software; you can redistribute it and/or
  11.   modify it under the terms of the GNU General Public
  12.   License as published by the Free Software Foundation; either
  13.   version 2 of the License, or (at your option) any later version.
  14.   
  15.   DDD is distributed in the hope that it will be useful,
  16.   but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  18.   See the GNU General Public License for more details.
  19.   
  20.   You should have received a copy of the GNU General Public
  21.   License along with DDD -- see the file COPYING.
  22.   If not, write to the Free Software Foundation, Inc.,
  23.   675 Mass Ave, Cambridge, MA 02139, USA.
  24.   
  25.   DDD is the data display debugger.
  26.   For details, see the DDD World-Wide-Web page, 
  27.   `http://www.cs.tu-bs.de/softech/ddd/',
  28.   or send a mail to the DDD developers at `ddd@ips.cs.tu-bs.de'.
  29. }
  30.  
  31. {--------------------------------------------------------------------------}
  32. { This program defines some data structures and values that may be         }
  33. { examined using DDD.                                                      }
  34. {--------------------------------------------------------------------------}
  35.  
  36. program ptest(input, output);
  37.  
  38. const rcsid =
  39.     '$Id: ptest.p,v 1.3 1995/11/23 10:53:21 zeller Exp $';
  40.  
  41. type DayOfWeek = (Sun, Mon, Tue, Wed, Thu, Fri, Sat);
  42.    Date           = record
  43.             day_of_week    : DayOfWeek;
  44.             day        : integer;
  45.             month    : integer;
  46.             year    : integer;
  47.          end;        
  48.    DatePtr     = ^Date;
  49.    Holiday     = record
  50.             date : Date;
  51.             name : string;
  52.          end;     
  53.    TreePtr     = ^Tree;
  54.    Tree           = record
  55.             value : integer;
  56.             name  : string;
  57.             date  : Date;
  58.             left  : TreePtr;
  59.             right : TreePtr;
  60.          end;
  61.  
  62. var main_i: integer;
  63.  
  64. procedure set_date(var d: Date; day_of_week: DayOfWeek;
  65.                day: integer; month: integer; year: integer);
  66. begin
  67.    d.day_of_week := day_of_week;
  68.    d.day         := day;
  69.    d.month       := month;
  70.    d.year        := year
  71. end; { set_date }
  72.  
  73. procedure new_date(var d: DatePtr; day_of_week: DayOfWeek;
  74.                day: integer; month: integer; year: integer);
  75. begin
  76.    new(d);
  77.    set_date(d^, day_of_week, day, month, year)
  78. end; { new_date }
  79.  
  80. procedure set_holiday(var h: Holiday; day_of_week: DayOfWeek;
  81.               day: integer; month: integer; year: integer;
  82.               name: string);
  83. begin
  84.    set_date(h.date, day_of_week, day, month, year);
  85.    h.name := name
  86. end; { set_holiday }
  87.  
  88. procedure new_tree(var p: TreePtr; value: integer; name: string);
  89. begin
  90.    new(p);
  91.    p^.value := value;
  92.    p^.name  := name;
  93.    p^.left  := nil;
  94.    p^.right := nil
  95. end; { new_tree }
  96.  
  97. procedure dispose_tree(p: TreePtr);
  98. begin
  99.    if p^.left <> nil then
  100.       dispose_tree(p^.left);
  101.    if p^.right <> nil then
  102.       dispose_tree(p^.right);
  103.  
  104.    dispose(p)
  105. end; { dispose_tree }
  106.  
  107. procedure tree_test;
  108. var tree : TreePtr;
  109. begin
  110.    tree := nil;
  111.    new_tree(tree,              7, 'Ada');      {Byron Lovelace}
  112.    new_tree(tree^.left,        1, 'Grace');    {Murray Hopper}
  113.    new_tree(tree^.left^.left,  5, 'Judy');     {Clapp}
  114.    new_tree(tree^.left^.right, 6, 'Kathleen'); {McNulty}
  115.    new_tree(tree^.right,       9, 'Mildred');  {Koss}
  116.  
  117.    set_date(tree^.date, Tue, 29, 11, 1994);
  118.    set_date(tree^.date, Wed, 30, 11, 1994);
  119.  
  120.    dispose_tree(tree)
  121. end; { tree_test }
  122.  
  123. procedure array_test;
  124. var i        : integer;
  125.    days_of_week    : array[1..7] of DayOfWeek;
  126.    twodim    : array[1..2,1..3] of string;
  127.    dates    : array[1..4] of Date;
  128.    date_ptrs    : array[1..4] of DatePtr;
  129. begin
  130.    days_of_week[1] := Sun;
  131.    days_of_week[2] := Mon;
  132.    days_of_week[3] := Tue;
  133.    days_of_week[4] := Wed;
  134.    days_of_week[5] := Thu;
  135.    days_of_week[6] := Fri;
  136.    days_of_week[7] := Sat;
  137.  
  138.    twodim[1,1] := 'Pioneering';
  139.    twodim[1,2] := 'women';
  140.    twodim[1,3] := 'in';
  141.    twodim[2,1] := 'computer';
  142.    twodim[2,2] := 'science';
  143.    twodim[2,3] := '!';
  144.  
  145.    new_date(date_ptrs[1], Thu, 1, 9, 1994);
  146.    new_date(date_ptrs[2], Tue, 10, 5, 1994);
  147.    new_date(date_ptrs[3], Fri, 15, 7, 1994);
  148.    new_date(date_ptrs[4], Sat, 24, 12, 1994);
  149.  
  150.    for i := 1 to 4 do
  151.    begin
  152.       dates[i] := date_ptrs[i]^;
  153.       dispose(date_ptrs[i]);
  154.    end
  155. end; { array_test }
  156.  
  157. procedure type_test;
  158. var holiday : Holiday;
  159.    r        : real;
  160.    c        : char;
  161. begin
  162.    set_holiday(holiday, Sat, 31, 12, 1994, 'May all acquaintance be forgot');
  163.    r := 3.1415;
  164.    c := 'A'
  165. end; { type_test }
  166.  
  167. procedure in_out_test;
  168. var name : string;
  169. begin
  170.    write('What is your name? ');
  171.    read(name);
  172.    readln;
  173.    write('Hello, ', name:20, '!')
  174. end;
  175.  
  176. begin
  177.    main_i := 42;
  178.    tree_test;
  179.    main_i := main_i + 1;
  180.    array_test;
  181.    main_i := main_i + 1;
  182.    type_test;
  183.    main_i := main_i - 1;
  184.    in_out_test
  185. end.
  186.